In today's world of computer-aided design (CAD) applications and geometry modeling systems, parts are commonly designed in one of two ways: history-based or history-less. A history-based system is commonly characterized by the parametric modeling paradigm that emerged in the mid-1980s. In parametric modeling systems, a recipe, or history tree, is created to reflect how things are related to one another. When a change is made to one original item, all items created later in time from the original item are updated. In this way, for example, two faces may remain coplanar, because they were designed with such a relationship captured during the design process and simply “replayed” during the update process. FIGS. 1a-1c illustrate a trimetric projection of a three-dimensional block. Referring to FIG. 1a, a C block 100 in three-dimension (“3D”) is viewable to a user on a computer display and is in need of a modification by a user by altering a bottom leg 105, a top leg 110, or both the bottom leg 105 and the top leg 110. In a history-based system, how easily the user modifies the C block 100 depends upon how it was originally designed in the CAD application system, such as NX by Siemens Product Lifecycle Management Software Inc. Commonly, an original designer creates and/or designs a part that is later modified by a modify designer who maybe completely unfamiliar to the original designer. For example, if the original designer, i.e., the person that originally designed the C block 100, had the design method intent to constrain the faces related to the bottom leg 105 and the top leg 110 as coplanar, then the modification action illustrated in FIG. 1c is easy to accomplish using known parametric/history-based modeling techniques that are basic to one skilled in the art of 3D model design; when two faces are constrained to be coplanar, moving one face will cause the other face to move as well. On the other hand, modifying the C block 100 in a history-less or the body-based approach taken by companies like CoCreate, IronCAD, and Kubotek, for example, fails to maintain the history-tree made popular by the parametric modeling paradigm. In the history-less approach, changes are made explicitly for each item on a solid model. If the original designer of the C block 100 intended that the faces on the bottom leg 105 and the top leg 110 maintain a coplanar relationship, later modifications require the manual selection of the faces for edit to ensure the desired result, which is difficult if the original designer's intent is unknown or unascertainable. For example, the modify designer can make either change illustrated in FIG. 1b or FIG. 1c simply be selecting the one face or individually select all of the other coplanar faces, which happens to be a small number in this example but could be in the hundreds in a complex assembly model. Alternatively, some software applications could allow the modify designer to “make faces coplanar” and permanently capture the design intent after the fact at time of edit, but this can also be cumbersome particularly with very large models. This later alteration would make the modification see in FIG. 1b difficult at a later date particularly since now the design intent may be baked into the model contrary to design intent.
The issue with the history-based approach is that design intent is incorporated and fixed at the time of model creation. In contrast, the history-less systems are flexible about change at a later date, but capture very little intelligence about how things are related. If modify designers determine to manually capture such intelligence at a later point in time, then, like history-based systems, that intelligence is incorporated and fixed thereby limiting further flexibility.
That said, in the geometry modeling systems, geometry selection techniques involve setting options prior to selecting the geometry, i.e., the designers have to plan ahead to prepare for what they want to select. Planning ahead entails recommended preparatory actions and in many cases recommended error recovery when the selection does not satisfy the modification at hand. In history-less system commands, selection options used to perform a modification are likely to change between command sessions, as well as within the command session. For example, with a move face command, the designer may move a boss, a rib, and a face connecting the boss and the rib in one command session. In another command session, the designer may move a single face or simply a slot.
FIG. 2 illustrates a planning ahead interaction where each arrow represents a different interaction pathway. Referring to FIG. 2, each box represents a cognitive or physical process that occurs depending upon the circumstance identified in the box. The more boxes an arrow intersects, the more processes the pathway entails. “Arrow 1” 200 is the simplest interaction illustrating the selection options are set correctly, and the designer selects what is intended. “Arrow 2” 205 is similar to “Arrow 1” 200 but passes through a recovery meaning the designer does not prepare, unintentionally selects something to modify, and has to recover from the error. “Arrow 3” 210 occurs when the designer interprets the selection option before selecting, thinking the option is set correctly, but still unintentionally selects something that requires the designer to recover the error. “Arrow 4” 215 represents the worst case and occurs when the designer interprets the selection option, determines the need to change the option, changes the option, but still unintentionally selects something that requires the designer to recover from the error. “Arrow 5” 220 occurs when the designer interprets the selection option, determines the need to the change the option, changes the option, and then selects what the designer intended. “Arrow 6” 225 occurs when the designer interprets the selection option, determines it as correct, and then selects what the designer intended.
This cognitive and physical processing may occur with each selection within the command session, where the worst case is that recovery from error is required for each command selection that is a drain on efficiency. Method to recover from an error vary and range from de-selecting the geometry of an individual object to de-select everything to start all over, either of which impose a measurable time penalty on the designer, as well as the immeasurable defeat felt by the designer in the need to recover from the error.
The inventors have advantageously recognized a need for a system and method for active selection in a solid model to alleviate the negative aspects of planning ahead selection.